package br.ufpe.cin.plebeia.model;

import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Version;

@Entity
public class Polen extends EntidadePersistente {

	private Unidade unidade;
	
	private String numero;
	
	private String familia;

	private Ornamentacao ornamentacao;

	private int diametroPolar;

	private int diametroEquatorial;

	private int espessuraDaExina;

	private Ambito ambito;

	private Forma forma;

	private EspecieVegetal especieVegetal;

	private Perfume perfume;

	private Foto foto;

	private Localidade localidade;

	private AberturaDoPolen aberturaDoPolen;

	private Usuario usuario;

	private int version;

	private long id;

	@Id @GeneratedValue(strategy=GenerationType.AUTO)
	public long getId() {
		return id;
	}

	public void setId(long id) {
		this.id = id;
	}

	@Version
	public int getVersion() {
		return version;
	}

	public void setVersion(int version) {
		this.version = version;
	}

	@ManyToOne
	public AberturaDoPolen getAberturaDoPolen() {
		return aberturaDoPolen;
	}

	public void setAberturaDoPolen(AberturaDoPolen aberturaDoPolen) {
		this.aberturaDoPolen = aberturaDoPolen;
	}
	@Enumerated(EnumType.STRING)
	public  Ambito getAmbito() {
		return ambito;
	}

	public void setAmbito(Ambito ambito) {
		this.ambito = ambito;
	}

	public int getDiametroEquatorial() {
		return diametroEquatorial;
	}

	public void setDiametroEquatorial(int diametroEquatorial) {
		this.diametroEquatorial = diametroEquatorial;
	}

	public int getDiametroPolar() {
		return diametroPolar;
	}

	public void setDiametroPolar(int diametroPolar) {
		this.diametroPolar = diametroPolar;
	}

	@ManyToOne
	public EspecieVegetal getEspecieVegetal() {
		return especieVegetal;
	}

	public void setEspecieVegetal(EspecieVegetal especieVegetal) {
		this.especieVegetal = especieVegetal;
	}

	public int getEspessuraDaExina() {
		return espessuraDaExina;
	}

	public void setEspessuraDaExina(int espessuraDaExina) {
		this.espessuraDaExina = espessuraDaExina;
	}
	@Enumerated(EnumType.STRING)
	public Forma getForma() {
		return forma;
	}
	
	public void setForma(Forma forma) {
		this.forma = forma;
	}

	public Foto getFoto() {
		return foto;
	}

	public void setFoto(Foto foto) {
		this.foto = foto;
	}

	@ManyToOne
	public Localidade getLocalidade() {
		return localidade;
	}

	public void setLocalidade(Localidade localidade) {
		this.localidade = localidade;
	}
	@Enumerated(EnumType.STRING)
	public Ornamentacao getOrnamentacao() {
		return ornamentacao;
	}

	public void setOrnamentacao(Ornamentacao ornamentacao) {
		this.ornamentacao = ornamentacao;
	}

	@ManyToOne
	public Perfume getPerfume() {
		return perfume;
	}

	public void setPerfume(Perfume perfume) {
		this.perfume = perfume;
	}
	@Enumerated(EnumType.STRING)
	public Unidade getUnidade() {
		return unidade;
	}

	public void setUnidade(Unidade unidade) {
		this.unidade = unidade;
	}

	@ManyToOne
	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	/**
	 * @return the numero
	 */
	public String getNumero() {
		return numero;
	}

	/**
	 * @param numero the numero to set
	 */
	public void setNumero(String numero) {
		this.numero = numero;
	}

	/**
	 * @return the familia
	 */
	public String getFamilia() {
		return familia;
	}

	/**
	 * @param familia the familia to set
	 */
	public void setFamilia(String familia) {
		this.familia = familia;
	}

}
